Welcome to the 3-d world of Windows! To avoid reading this text file, just run the demo.exe program!. Description: ------------ The file "three_d.dll" contains functions for making a Windows 3.0 dialog box appear to have a 3-dimensional look. You can use your own discretion as to which controls look good with a 3-d appearance. It requires that you make some minor changes in your programs's source and build files. In order for the DLL to function properly, it must be either in the directory where you are running your program from or included in a directory which is contained in your path. The source code for the demo.exe program is also included. UPDATE: - The DLL now supports EGA, VGA and above. Sorry, no monochrome! ------ - New 3-D ownerdraw listbox and combobox support (You'll love it!) /==============================================================================/ The following are the steps necessary to implement the functions contained in the DLL: - Be sure to include the file "three_d.h" in any module which will call a function contained in the DLL. This function contains prototypes for each function. - Modify your link line to contain the library "three_d.lib" - Modify your dialog box procedure to trap the following messages: WM_CTLCOLOR, WM_PAINT and the DLL defined message WM_3DPAINT. - Modify the dialog box template to exclude the WS_BORDER style from controls which will be 3-d. Note: For edit controls, this requires subtracting 2 from cy. - NEW: If you wish to do 3-d owner-draw listboxes or combo boxes, trap the WM_MEASUREITEM and WM_DRAWITEM messages. It's simple! /==============================================================================/ Function Descriptions: - Handle3dFocus(lpdis) lpdis long pointer to a DRAWITEMSTRUCT structure which contains information for drawing the list/combo box item. This function takes care of a list or combo box item losing or gaining the input focus. - Draw3dItem(lpdis) lpdis long pointer to a DRAWITEMSTRUCT structure which contains information for drawing the list/combo box item. This function handles the actual drawing of the listbox or combobox item. It handles both the selected and normal state of the item. - Draw3dFrame(hDlgBox,mode) hDlgBox is a handle to the dialog box which you wish to make 3-d. mode is an identifier for the type of frame to be drawn. INSIDE_FRAME draws a "picture" frame around the box OUTSIDE_FRAME draws a "creased" frame around the box. This function draws a 3_D frame around the client area of the specified dialog box. - Draw3dBorder(hDlgBox,ControlId,mode,depth) hDlgBox is a handle to the dialog box which you wish to make 3-d. ControlId is the integer identifier for the control you wish to draw. mode specifies drawing mode: RECESSED makes the control appear "recessed" RAISED makes the control appear "raised" CREASED makes the control appear "creased". Using this style, a border can be drawn around a group of controls if you specify a control in the dialog editor which has the SS_BLACKFRAME,SS_WHITEFRAME or SS_GRAYFRAME style and surrounds the desired group of controls. depth is an integer value defining the width of the pen used for drawing. This governs how "raised" or "recessed" the given control will appear. This value must be 1 or greater. This function draws a three dimensional border around the specified control. - Draw3dShadow(hDlgBox,ControlId) hDlgBox is a handle to the dialog box which you wish to make 3-d. ControlId is the integer identifier for the control you wish to draw. This function draws a "dropped" shadow around the specified control. - Control3dColor(hDlgBox,wParam) hDlgBox is a handle to the dialog box which you wish to make 3-d. wParam is the wParam which accompanies the WM_CTLCOLOR message for the dialog box. This function handles the WM_CTLCOLOR message for the specified dialog box. It sets the background color for the dialog box to light gray. /=============================================================================/ Included with this ZIP file, you will find the source code for the demo.exe program. Rather than put the sample code in this text file, I thought it would be easier to include the source. /=============================================================================/ If you have any questions or comments I can be reached at the following address on CompuServe: 70324,1204 Your comments would be greatly appreciated! This DLL comes to you without any annoying registration messages. However, if you decide to ship the DLL with your own application, I will rely on your honesty to register the copy. This will also insure future upgrades. To register your royalty free version of three_d.dll, Send $20 (for DLL) or $50 (for DLL and source) check or money order to: Ray Donahue 365 Mather Street Unit 125 Hamden, CT 06514 Your support would be greatly appreciated! Also Available (for a nominal fee) to registered users: - Source code and DLL for creating "Excel-like" toolbar. This is currently under construction and will be available soon! - Source code and DLL for creating "Excel and Word-like" status bar. This is implemented as a custom control and will be available by 10/31/91. To obtain demos for any of the above, leave a message at the CompuServe address listed above. Once again, Thanks!